home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
CD ROM Paradise Collection 4
/
CD ROM Paradise Collection 4 1995 Nov.iso
/
edit
/
aurora2.zip
/
DRAWBOX.AML
< prev
next >
Wrap
Text File
|
1995-01-26
|
3KB
|
116 lines
// ───────────────────────────────────────────────────────────────────
// The Aurora Editor v2.0
// Copyright 1993-1995 nuText Systems. All Rights Reserved Worldwide.
//
// Draw a box around a column mark
//
// This macro draws a box around a column mark in the current window.
// The box style can be passed to this macro, or if nothing is passed,
// the user is prompted for the box style. The following box styles
// are available:
//
// 1 - single line
// 2 - double horizontal line
// 3 - double vertical line
// 4 - double horizontal and vertical line
// 5 - spaces
// 6 - shaded characters
//
// ───────────────────────────────────────────────────────────────────
// compile time macros and function definitions
include bootpath "define.aml"
// test for edit windows
if not wintype? "edit" then
msgbox "Edit windows only!"
return
end
// test for mark in current window and column mark
if getcurrbuf <> getmarkbuf or getmarktype <> 'k' then
msgbox "Column block not marked in current window"
return
end
// get box style based on first argument (arg 2) passed to this
// macro (arg 1 is the macro filename)
boxstyle = arg 2
// if nothing is passed, then prompt the user
if not boxstyle then
// create a boxstyle menu
menu "boxstyle"
item " &Single" 1
item " Double &Horizontal" 2
item " Double &Vertical" 3
item " &Double" 4
item " &Eraser" 5
item " Shaded &Character" 6
end
// display the popup menu and get the boxstyle
boxstyle = popup "boxstyle" "Select the box style:" 35
// destroy the menu
destroybuf "boxstyle"
// exit macro if no box style is selected
if not boxstyle then
return
end
end
// get the box style character string
style = "─│┌┐┘└═│╒╕╛╘─║╓╖╜╙═║╔╗╝╚ ▒▒▒▒▒▒" [(boxstyle - 1) * 6 + 1 : 6]
topside = getmarktop
botside = getmarkbot
leftside = getmarkleft
rightside = getmarkright
undobegin
usemark 'T'
// right side
column = rightside + 1
markcolumn column column topside botside
fillblock style [2]
// left side
if leftside > 1 then
column = leftside - 1
markcolumn column column topside botside
fillblock style [2]
left_ok = 1
end
destroymark
usemark
// top side
if topside > 1 then
topside = topside - 1
ovltext (copystr style [1] (getmarkcols)) leftside topside
ovltext style [4] rightside + 1 topside
if left_ok then
ovltext style [3] leftside - 1 topside
end
end
// bottom side
if botside < getlines then
botside = botside + 1
ovltext (copystr style [1] (getmarkcols)) leftside botside
ovltext style [5] rightside + 1 botside
if left_ok then
ovltext style [6] leftside - 1 botside
end
end
undoend